(defun precede-q-code (time-1 time-2)
   (if(or(and(term-type-p time-1 'at-past-past)
             (not(term-type-p time-2 'at-past-past))) 
         (and(term-type-p time-1 'at-past-present)
             (not(term-type-p time-2 'at-past-past))
             (not(term-type-p time-2 'at-past-present))) 
         (and(term-type-p time-1 'at-past-future)
             (not(term-type-p time-2 'at-past-past))
             (not(term-type-p time-2 'at-past-present))
             (not(term-type-p time-2 'at-past-future))) 
         (and(term-type-p time-1 'at-present)
             (not(term-type-p time-2 'at-past))
             (not(term-type-p time-2 'at-past-past))
             (not(term-type-p time-2 'at-past-present))
             (not(term-type-p time-2 'at-past-future))
             (not(term-type-p time-2 'at-present))) 
         (and(term-type-p time-1 'at-future-past)
             (not(term-type-p time-2 'at-past)
             (not(term-type-p time-2 'at-past-past))
             (not(term-type-p time-2 'at-past-present))
             (not(term-type-p time-2 'at-past-future))
             (not(term-type-p time-2 'at-present))
             (not(term-type-p time-2 'at-future-past))) 
         (and(term-type-p time-1 'at-future-present)
             (term-type-p time-2 'at-future-future)) 
         (and(term-type-p time-1 'at-past)
             (or(term-type-p time-2 'at-present)
                (term-type-p time-2 'at-future)
                (term-type-p time-2 'at-future-past)
                (term-type-p time-2 'at-future-present)
                (term-type-p time-2 'at-future-future))) 'precedes 'not-precedes))))   


